home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 - Homepage / CHIP.BIN / share / webmaste / csehtmlp / csehtmlp.exe / {app} / ParserRules / assembler.xs < prev    next >
Encoding:
Text File  |  2002-04-22  |  15.8 KB  |  463 lines

  1. //Language: Assembler 
  2. //Copyright (c) 1992-2002 Altium Limited            
  3. //All rights reserved.                              
  4. //http://www.dream-com.com                          
  5. //contact@dream-com.com                             
  6.  
  7. // states
  8. State=snormal
  9. State=sstring1
  10. State=sstring2
  11. State=scomment
  12. // tokens
  13. Token=tnone
  14. Token=tstring
  15. Token=tcomment
  16. Token=tident
  17. Token=tinteger
  18. Token=tfloat
  19. Token=tresword
  20. Token=tassembler
  21. Token=turl
  22. Token=twhitespace
  23. Token=tdirective
  24. //delims
  25. Delimiters=;.,:'"{}[]()?!@#$%^&*-+=|\/
  26.  
  27. // reswords
  28. snormal 'AAA'     snormal tresword
  29. snormal 'AAD'     snormal tresword
  30. snormal 'AAM'     snormal tresword
  31. snormal 'AAS'     snormal tresword
  32. snormal 'ADC'     snormal tresword
  33. snormal 'ADD'     snormal tresword
  34. snormal 'AND'     snormal tresword
  35. snormal 'ARPL'    snormal tresword
  36. snormal 'BOUND'   snormal tresword
  37. snormal 'BSF'     snormal tresword
  38. snormal 'BSR'     snormal tresword
  39. snormal 'BSWAP'   snormal tresword
  40. snormal 'BT'      snormal tresword
  41. snormal 'BTC'     snormal tresword
  42. snormal 'BTR'     snormal tresword
  43. snormal 'BTS'     snormal tresword
  44. snormal 'CALL'    snormal tresword
  45. snormal 'CBW'     snormal tresword
  46. snormal 'CDQ'     snormal tresword
  47. snormal 'CLC'     snormal tresword
  48. snormal 'CLD'     snormal tresword
  49. snormal 'CLI'     snormal tresword
  50. snormal 'CLTS'    snormal tresword
  51. snormal 'CMC'     snormal tresword
  52. snormal 'CMP'     snormal tresword
  53. snormal 'CMPS'    snormal tresword
  54. snormal 'CMPSB'   snormal tresword
  55. snormal 'CMPSD'   snormal tresword
  56. snormal 'CMPSW'   snormal tresword
  57. snormal 'CMPXCHG' snormal tresword
  58. snormal 'CWD'     snormal tresword
  59. snormal 'CWDE'    snormal tresword
  60. snormal 'DAA'     snormal tresword
  61. snormal 'DAS'     snormal tresword
  62. snormal 'DEC'     snormal tresword
  63. snormal 'DIV'     snormal tresword
  64. snormal 'ENTER'   snormal tresword
  65. snormal 'ESC'     snormal tresword
  66. snormal 'F2XM1'   snormal tresword
  67. snormal 'FABS'    snormal tresword
  68. snormal 'FADD'    snormal tresword
  69. snormal 'FADDP'   snormal tresword
  70. snormal 'FBLD'    snormal tresword
  71. snormal 'FBSTP'   snormal tresword
  72. snormal 'FCHS'    snormal tresword
  73. snormal 'FCLEX'   snormal tresword
  74. snormal 'FCOM'    snormal tresword
  75. snormal 'FCOMP'   snormal tresword
  76. snormal 'FCOMPP'  snormal tresword
  77. snormal 'FCOS'    snormal tresword
  78. snormal 'FDECSTP' snormal tresword
  79. snormal 'FDISI'   snormal tresword
  80. snormal 'FDIV'    snormal tresword
  81. snormal 'FDIVP'   snormal tresword
  82. snormal 'FDIVR'   snormal tresword
  83. snormal 'FDIVRP'  snormal tresword
  84. snormal 'FENI'    snormal tresword
  85. snormal 'FFREE'   snormal tresword
  86. snormal 'FIADD'   snormal tresword
  87. snormal 'FICOM'   snormal tresword
  88. snormal 'FICOMP'  snormal tresword
  89. snormal 'FIDIV'   snormal tresword
  90. snormal 'FIDIVR'  snormal tresword
  91. snormal 'FILD'    snormal tresword
  92. snormal 'FIMUL'   snormal tresword
  93. snormal 'FINCSTP' snormal tresword
  94. snormal 'FINIT'   snormal tresword
  95. snormal 'FIST'    snormal tresword
  96. snormal 'FISTP'   snormal tresword
  97. snormal 'FISUB'   snormal tresword
  98. snormal 'FISUBR'  snormal tresword
  99. snormal 'FLD'     snormal tresword
  100. snormal 'FLD1'    snormal tresword
  101. snormal 'FLDCW'   snormal tresword
  102. snormal 'FLDENV'  snormal tresword
  103. snormal 'FLDL2E'  snormal tresword
  104. snormal 'FLDL2T'  snormal tresword
  105. snormal 'FLDLG2'  snormal tresword
  106. snormal 'FLDLN2'  snormal tresword
  107. snormal 'FLDPI'   snormal tresword
  108. snormal 'FLDZ'    snormal tresword
  109. snormal 'FMUL'    snormal tresword
  110. snormal 'FMULP'   snormal tresword
  111. snormal 'FNCLEX'  snormal tresword
  112. snormal 'FNDISI'  snormal tresword
  113. snormal 'FNENI'   snormal tresword
  114. snormal 'FNINIT'  snormal tresword
  115. snormal 'FNOP'    snormal tresword
  116. snormal 'FNSAVE'  snormal tresword
  117. snormal 'FNSTCW'  snormal tresword
  118. snormal 'FNSTENV' snormal tresword
  119. snormal 'FNSTSW'  snormal tresword
  120. snormal 'FPATAN'  snormal tresword
  121. snormal 'FPREM'   snormal tresword
  122. snormal 'FPREM1'  snormal tresword
  123. snormal 'FPTAN'   snormal tresword
  124. snormal 'FRNDINT' snormal tresword
  125. snormal 'FRSTOR'  snormal tresword
  126. snormal 'FSAVE'   snormal tresword
  127. snormal 'FSCALE'  snormal tresword
  128. snormal 'FSETPM'  snormal tresword
  129. snormal 'FSIN'    snormal tresword
  130. snormal 'FSINCOS' snormal tresword
  131. snormal 'FSQRT'   snormal tresword
  132. snormal 'FST'     snormal tresword
  133. snormal 'FSTCW'   snormal tresword
  134. snormal 'FSTENV'  snormal tresword
  135. snormal 'FSTP'    snormal tresword
  136. snormal 'FSTSW'   snormal tresword
  137. snormal 'FSUB'    snormal tresword
  138. snormal 'FSUBP'   snormal tresword
  139. snormal 'FSUBR'   snormal tresword
  140. snormal 'FSUBRP'  snormal tresword
  141. snormal 'FTST'    snormal tresword
  142. snormal 'FUCOM'   snormal tresword
  143. snormal 'FUCOMP'  snormal tresword
  144. snormal 'FUCOMPP' snormal tresword
  145. snormal 'FWAIT'   snormal tresword
  146. snormal 'FXAM'    snormal tresword
  147. snormal 'FXCH'    snormal tresword
  148. snormal 'FXTRACT' snormal tresword
  149. snormal 'FYL2X'   snormal tresword
  150. snormal 'FYL2XP1' snormal tresword
  151. snormal 'HLT'     snormal tresword
  152. snormal 'IDIV'    snormal tresword
  153. snormal 'IMUL'    snormal tresword
  154. snormal 'IN'      snormal tresword
  155. snormal 'INC'     snormal tresword
  156. snormal 'INSB'    snormal tresword
  157. snormal 'INSD'    snormal tresword
  158. snormal 'INSW'    snormal tresword
  159. snormal 'INT'     snormal tresword
  160. snormal 'INTO'    snormal tresword
  161. snormal 'INVD'    snormal tresword
  162. snormal 'INVLPG'  snormal tresword
  163. snormal 'IRET'    snormal tresword
  164. snormal 'IRETD'   snormal tresword
  165. snormal 'JA'      snormal tresword
  166. snormal 'JAE'     snormal tresword
  167. snormal 'JB'      snormal tresword
  168. snormal 'JBE'     snormal tresword
  169. snormal 'JC'      snormal tresword
  170. snormal 'JCXZ'    snormal tresword
  171. snormal 'JE'      snormal tresword
  172. snormal 'JECXZ'   snormal tresword
  173. snormal 'JG'      snormal tresword
  174. snormal 'JGE'     snormal tresword
  175. snormal 'JL'      snormal tresword
  176. snormal 'JLE'     snormal tresword
  177. snormal 'JMP'     snormal tresword
  178. snormal 'JNA'     snormal tresword
  179. snormal 'JNAE'    snormal tresword
  180. snormal 'JNB'     snormal tresword
  181. snormal 'JNBE'    snormal tresword
  182. snormal 'JNC'     snormal tresword
  183. snormal 'JNE'     snormal tresword
  184. snormal 'JNG'     snormal tresword
  185. snormal 'JNGE'    snormal tresword
  186. snormal 'JNL'     snormal tresword
  187. snormal 'JNLE'    snormal tresword
  188. snormal 'JNO'     snormal tresword
  189. snormal 'JNP'     snormal tresword
  190. snormal 'JNS'     snormal tresword
  191. snormal 'JNZ'     snormal tresword
  192. snormal 'JO'      snormal tresword
  193. snormal 'JP'      snormal tresword
  194. snormal 'JPE'     snormal tresword
  195. snormal 'JPO'     snormal tresword
  196. snormal 'JS'      snormal tresword
  197. snormal 'JZ'      snormal tresword
  198. snormal 'LAHF'    snormal tresword
  199. snormal 'LAR'     snormal tresword
  200. snormal 'LDS'     snormal tresword
  201. snormal 'LEA'     snormal tresword
  202. snormal 'LEAVE'   snormal tresword
  203. snormal 'LES'     snormal tresword
  204. snormal 'LFS'     snormal tresword
  205. snormal 'LGDT'    snormal tresword
  206. snormal 'LGS'     snormal tresword
  207. snormal 'LIDT'    snormal tresword
  208. snormal 'LLDT'    snormal tresword
  209. snormal 'LMSW'    snormal tresword
  210. snormal 'LOCK'    snormal tresword
  211. snormal 'LODS'    snormal tresword
  212. snormal 'LODSB'   snormal tresword
  213. snormal 'LODSD'   snormal tresword
  214. snormal 'LODSW'   snormal tresword
  215. snormal 'LOOP'    snormal tresword
  216. snormal 'LOOPD'   snormal tresword
  217. snormal 'LOOPDE'  snormal tresword
  218. snormal 'LOOPDNE' snormal tresword
  219. snormal 'LOOPDNZ' snormal tresword
  220. snormal 'LOOPDZ'  snormal tresword
  221. snormal 'LOOPE'   snormal tresword
  222. snormal 'LOOPNE'  snormal tresword
  223. snormal 'LOOPNZ'  snormal tresword
  224. snormal 'LOOPZ'   snormal tresword
  225. snormal 'LSL'     snormal tresword
  226. snormal 'LSS'     snormal tresword
  227. snormal 'LTR'     snormal tresword
  228. snormal 'MOV'     snormal tresword
  229. snormal 'MOVS'    snormal tresword
  230. snormal 'MOVSB'   snormal tresword
  231. snormal 'MOVSD'   snormal tresword
  232. snormal 'MOVSW'   snormal tresword
  233. snormal 'MOVSX'   snormal tresword
  234. snormal 'MOVZX'   snormal tresword
  235. snormal 'MUL'     snormal tresword
  236. snormal 'NEG'     snormal tresword
  237. snormal 'NOP'     snormal tresword
  238. snormal 'NOT'     snormal tresword
  239. snormal 'OR'      snormal tresword
  240. snormal 'OUT'     snormal tresword
  241. snormal 'OUTSB'   snormal tresword
  242. snormal 'OUTSD'   snormal tresword
  243. snormal 'OUTSW'   snormal tresword
  244. snormal 'POP'     snormal tresword
  245. snormal 'POPA'    snormal tresword
  246. snormal 'POPAD'   snormal tresword
  247. snormal 'POPF'    snormal tresword
  248. snormal 'POPFD'   snormal tresword
  249. snormal 'PUSH'    snormal tresword
  250. snormal 'PUSHA'   snormal tresword
  251. snormal 'PUSHAD'  snormal tresword
  252. snormal 'PUSHF'   snormal tresword
  253. snormal 'PUSHFD'  snormal tresword
  254. snormal 'RCL'     snormal tresword
  255. snormal 'RCR'     snormal tresword
  256. snormal 'REP'     snormal tresword
  257. snormal 'REPE'    snormal tresword
  258. snormal 'REPNE'   snormal tresword
  259. snormal 'REPNZ'   snormal tresword
  260. snormal 'REPZ'    snormal tresword
  261. snormal 'RET'     snormal tresword
  262. snormal 'RETF'    snormal tresword
  263. snormal 'RETN'    snormal tresword
  264. snormal 'ROL'     snormal tresword
  265. snormal 'ROR'     snormal tresword
  266. snormal 'SAHF'    snormal tresword
  267. snormal 'SAL'     snormal tresword
  268. snormal 'SAR'     snormal tresword
  269. snormal 'SBB'     snormal tresword
  270. snormal 'SCAS'    snormal tresword
  271. snormal 'SCASB'   snormal tresword
  272. snormal 'SCASD'   snormal tresword
  273. snormal 'SCASW'   snormal tresword
  274. snormal 'SEGCS'   snormal tresword
  275. snormal 'SEGDS'   snormal tresword
  276. snormal 'SEGES'   snormal tresword
  277. snormal 'SEGFS'   snormal tresword
  278. snormal 'SEGGS'   snormal tresword
  279. snormal 'SEGSS'   snormal tresword
  280. snormal 'SETA'    snormal tresword
  281. snormal 'SETAE'   snormal tresword
  282. snormal 'SETB'    snormal tresword
  283. snormal 'SETBE'   snormal tresword
  284. snormal 'SETC'    snormal tresword
  285. snormal 'SETE'    snormal tresword
  286. snormal 'SETG'    snormal tresword
  287. snormal 'SETGE'   snormal tresword
  288. snormal 'SETL'    snormal tresword
  289. snormal 'SETLE'   snormal tresword
  290. snormal 'SETNA'   snormal tresword
  291. snormal 'SETNAE'  snormal tresword
  292. snormal 'SETNB'   snormal tresword
  293. snormal 'SETNBE'  snormal tresword
  294. snormal 'SETNC'   snormal tresword
  295. snormal 'SETNE'   snormal tresword
  296. snormal 'SETNG'   snormal tresword
  297. snormal 'SETNGE'  snormal tresword
  298. snormal 'SETNL'   snormal tresword
  299. snormal 'SETNLE'  snormal tresword
  300. snormal 'SETNO'   snormal tresword
  301. snormal 'SETNP'   snormal tresword
  302. snormal 'SETNS'   snormal tresword
  303. snormal 'SETNZ'   snormal tresword
  304. snormal 'SETO'    snormal tresword
  305. snormal 'SETP'    snormal tresword
  306. snormal 'SETPE'   snormal tresword
  307. snormal 'SETPO'   snormal tresword
  308. snormal 'SETS'    snormal tresword
  309. snormal 'SETZ'    snormal tresword
  310. snormal 'SGDT'    snormal tresword
  311. snormal 'SHL'     snormal tresword
  312. snormal 'SHLD'    snormal tresword
  313. snormal 'SHR'     snormal tresword
  314. snormal 'SHRD'    snormal tresword
  315. snormal 'SIDT'    snormal tresword
  316. snormal 'SLDT'    snormal tresword
  317. snormal 'SMSW'    snormal tresword
  318. snormal 'STC'     snormal tresword
  319. snormal 'STD'     snormal tresword
  320. snormal 'STI'     snormal tresword
  321. snormal 'STOS'    snormal tresword
  322. snormal 'STOSB'   snormal tresword
  323. snormal 'STOSD'   snormal tresword
  324. snormal 'STOSW'   snormal tresword
  325. snormal 'STR'     snormal tresword
  326. snormal 'SUB'     snormal tresword
  327. snormal 'TEST'    snormal tresword
  328. snormal 'VERR'    snormal tresword
  329. snormal 'VERW'    snormal tresword
  330. snormal 'WAIT'    snormal tresword
  331. snormal 'WBINVD'  snormal tresword
  332. snormal 'XADD'    snormal tresword
  333. snormal 'XCHG'    snormal tresword
  334. snormal 'XLAT'    snormal tresword
  335. snormal 'XOR'     snormal tresword
  336. snormal 'AH'      snormal tresword
  337. snormal 'AL'      snormal tresword
  338. snormal 'AND'     snormal tresword
  339. snormal 'AX'      snormal tresword
  340. snormal 'BH'      snormal tresword
  341. snormal 'BL'      snormal tresword
  342. snormal 'BP'      snormal tresword
  343. snormal 'BX'      snormal tresword
  344. snormal 'BYTE'    snormal tresword
  345. snormal 'CH'      snormal tresword
  346. snormal 'CL'      snormal tresword
  347. snormal 'CS'      snormal tresword
  348. snormal 'CX'      snormal tresword
  349. snormal 'DH'      snormal tresword
  350. snormal 'DI'      snormal tresword
  351. snormal 'DL'      snormal tresword
  352. snormal 'DS'      snormal tresword
  353. snormal 'DWORD'   snormal tresword
  354. snormal 'DX'      snormal tresword
  355. snormal 'EAX'     snormal tresword
  356. snormal 'EBP'     snormal tresword
  357. snormal 'EBX'     snormal tresword
  358. snormal 'ECX'     snormal tresword
  359. snormal 'EDI'     snormal tresword
  360. snormal 'EDX'     snormal tresword
  361. snormal 'EIP'     snormal tresword
  362. snormal 'ES'      snormal tresword
  363. snormal 'ESI'     snormal tresword
  364. snormal 'ESP'     snormal tresword
  365. snormal 'FS'      snormal tresword
  366. snormal 'GS'      snormal tresword
  367. snormal 'HIGH'    snormal tresword
  368. snormal 'LOW'     snormal tresword
  369. snormal 'MOD'     snormal tresword
  370. snormal 'NOT'     snormal tresword
  371. snormal 'OFFSET'  snormal tresword
  372. snormal 'OR'      snormal tresword
  373. snormal 'PTR'     snormal tresword
  374. snormal 'QWORD'   snormal tresword
  375. snormal 'SHL'     snormal tresword
  376. snormal 'SHR'     snormal tresword
  377. snormal 'SI'      snormal tresword
  378. snormal 'SP'      snormal tresword
  379. snormal 'SS'      snormal tresword
  380. snormal 'ST'      snormal tresword
  381. snormal 'TBYTE'   snormal tresword
  382. snormal 'TYPE'    snormal tresword
  383. snormal 'WORD'    snormal tresword
  384. snormal 'XOR'     snormal tresword
  385. snormal 'ASSUME'  snormal tresword
  386. snormal 'COMMENT' snormal tresword
  387. snormal 'DB'      snormal tresword
  388. snormal 'DD'      snormal tresword
  389. snormal 'DQ'      snormal tresword
  390. snormal 'DT'      snormal tresword
  391. snormal 'DW'      snormal tresword
  392. snormal 'END'     snormal tresword
  393. snormal 'ENDM'    snormal tresword
  394. snormal 'ENDP'    snormal tresword
  395. snormal 'ENDS'    snormal tresword
  396. snormal 'EQ'      snormal tresword
  397. snormal 'EQU'     snormal tresword
  398. snormal 'EXITM'   snormal tresword
  399. snormal 'EXTRN'   snormal tresword
  400. snormal 'FAR'     snormal tresword
  401. snormal 'GE'      snormal tresword
  402. snormal 'GROUP'   snormal tresword
  403. snormal 'GT'      snormal tresword
  404. snormal 'INCLUDE' snormal tresword
  405. snormal 'LABEL'   snormal tresword
  406. snormal 'LARGE'   snormal tresword
  407. snormal 'LE'      snormal tresword
  408. snormal 'LENGTH'  snormal tresword
  409. snormal 'LOCAL'   snormal tresword
  410. snormal 'LT'      snormal tresword
  411. snormal 'MACRO'   snormal tresword
  412. snormal 'MASK'    snormal tresword
  413. snormal 'NAME'    snormal tresword
  414. snormal 'NEAR'    snormal tresword
  415. snormal 'ORG'     snormal tresword
  416. snormal 'PAGE'    snormal tresword
  417. snormal 'PROC'    snormal tresword
  418. snormal 'PUBLIC'  snormal tresword
  419. snormal 'PURGE'   snormal tresword
  420. snormal 'RECORD'  snormal tresword
  421. snormal 'REPT'    snormal tresword
  422. snormal 'SEG'     snormal tresword
  423. snormal 'SEGMENT' snormal tresword
  424. snormal 'SHORT'   snormal tresword
  425. snormal 'SIZE'    snormal tresword
  426. snormal 'SMALL'   snormal tresword
  427. snormal 'STRUC'   snormal tresword
  428. snormal 'SUBTTL'  snormal tresword
  429. snormal 'SYMTYPE' snormal tresword
  430. snormal 'THIS'    snormal tresword
  431. snormal 'TITLE'   snormal tresword
  432. snormal 'WIDTH'   snormal tresword
  433.  
  434. // numbers
  435. snormal [1-9][0-9]*                            snormal  tinteger
  436. snormal [1-9][0-9]*\.[0-9]*                    snormal  tfloat
  437. snormal [1-9][0-9]*{\.[0-9]+}|e{[\+\-]}|[0-9]+ snormal  tfloat
  438.  
  439. //idents
  440.  
  441. snormal   [a-z_A-Z][a-z_A-Z0-9]*  snormal   tident
  442.  
  443. //white space
  444. snormal #32*                      snormal   twhitespace
  445.  
  446. //comments
  447. snormal    \;                      scomment  tcomment
  448. scomment   [#1-#255]*              snormal   tcomment
  449. scomment   $                       snormal   tcomment
  450.  
  451. //strings
  452. snormal    \'                     sstring1   tstring
  453. sstring1   [^\']*                 sstring1   tstring
  454. sstring1   \'                     snormal    tstring
  455. sstring1   \'\'                   sstring1   tstring
  456. sstring1   $                      snormal    tstring
  457.  
  458. snormal    \"                     sstring2   tstring
  459. sstring2   [^\"]*                 sstring2   tstring
  460. sstring2   \"                     snormal    tstring
  461. sstring2   \"\"                   sstring2   tstring
  462. sstring2   $                      snormal    tstring
  463.